<?php
if (!defined('BASEPATH'))
  exit('No direct script access allowed');

/**
 *
 * @subpackage fisico
 * @author Judelvis Rivas
 * @since Version 1.0
 *
 */
class MPanel extends CI_Model {

  var $identificador = NULL;

  var $nombre = '';

  var $ubicacion = '';

  var $observacion = '';

  function __construct() {
    if (!isset($this -> db)) {
      $this -> load -> database();
    }
  }

  function __destruct() {
    $this->db->close();
    unset($this -> db);
  }
  
  /**
   * funciones para paginas
   */
  function listaRecientes(){
  	$query = 'SELECT * FROM inmueble 
LEFT join (select * from galeria group by oidi order by creado desc  )as A on inmueble.id = A.oidi
  			where estatus=1
order by inmueble.creado desc limit 6';
  	$rec = $this -> db -> query($query);
  	$lista = array();
  	if($rec -> num_rows()>0)$lista = $rec -> result();
 	return $lista; 
  	
  }
  
  	function buscarTipo($tipo) {
  		$query = 'SELECT * FROM inmueble
  		LEFT join (select * from galeria group by oidi order by creado desc  )as A on inmueble.id = A.oidi
  		where estatus=1 and tipo='.$tipo;
  		$rec = $this -> db -> query($query);
  		$lista = array();
  		if($rec -> num_rows()>0)$lista = $rec -> result();
  		return $lista;
	}
	
	function buscarCiudad($id) {
		$query = 'SELECT * FROM inmueble
		LEFT join (select * from galeria group by oidi order by creado desc  )as A on inmueble.id = A.oidi
		where estatus=1 and ciudad='.$id;
		$rec = $this -> db -> query($query);
		$lista = array();
		if($rec -> num_rows()>0)$lista = $rec -> result();
		return $lista;
	}
	
	function consulta($arr) {
		$query = 'SELECT * FROM inmueble
		LEFT join (select * from galeria group by oidi order by creado desc  )as A on inmueble.id = A.oidi
		where estatus=1 ';
		$donde = '';
		if($arr['tipo'] !=0)$donde.=' and tipo='.$arr['tipo'];
		if($arr['ciudad'] !=0)$donde.=' and ciudad='.$arr['ciudad'];
		if($arr['tama'] !=0){
			$i = $arr['tama'];
			switch ($i) {
				case '1':
					$donde .=' and tama <= 100';
					break;
				case '2':
					$donde .=' and tama > 100 and tama <= 200';
					break;
				case '3':
					$donde .=' and tama > 200 and tama <= 300';
					break;
				case '4':
					$donde .=' and tama > 300';
					break;
			}
		}
		if($arr['precio'] !=0){
			$i = $arr['precio'];
			switch ($i) {
				case '1':
					$donde .=' and precio <= 100000';
					break;
				case '2':
					$donde .=' and precio > 100000 and tama <= 250000';
					break;
				case '3':
					$donde .=' and precio > 250000 and precio <= 500000';
					break;
				case '4':
					$donde .=' and precio > 500000 and precio <= 1000000';
					break;
				case '5':
					$donde .=' and precio > 1000000';
					break;
			}	
		}
		
		$rec = $this -> db -> query($query.$donde);
		$lista = array();
		if($rec -> num_rows()>0)$lista['lst'] = $rec -> result();
		else $lista['lst']=0;
		$lista['query']=$donde;
		return $lista;
	}
	
	function ordenado($arr){
		$query = 'SELECT * FROM inmueble
		LEFT join (select * from galeria group by oidi order by creado desc  )as A on inmueble.id = A.oidi
		where estatus=1 ';
		$query .= $arr['consulta'].' order by '.$arr['campo'];
		$rec = $this -> db -> query($query);
		$lista = array();
		if($rec -> num_rows()>0)$lista['lst'] = $rec -> result();
		//$lista['query']=$query;
		return $lista;
	}
  
  
  /**
   * funciones de galeria
   */
  function registrarGaleria($cod,$nom){
  	$data=array("oidi"=>$cod,"imagen"=>$nom);
  	$this -> db -> insert("galeria",$data);
  	return "Изображение было загружено";
  }
  
  function consultarGaleria($cod){
  	$imagenes = $this -> db -> query('SELECT * FROM galeria WHERE oidi='.$cod);
  	$obj = array();
  	$cant = $imagenes -> num_rows();
  	if($cant > 0){
  		$obj['resp'] = 1 ;
  		$rsImg = $imagenes -> result();
  		$i = 0;
  		foreach($rsImg as $fila){
  			$i++;
  			$rImg = '<img src="'.__IMG__.'galeria/'.$fila->imagen.'" width=200></img> ';
  			//$rImg = "epa";
  			$cuep[$i] = array("1" => $fila-> oid,"2" => $fila -> imagen , "3" => "","4"=> $rImg );
  		}
  		
  		$obj = array("Cabezera" => $this -> cab() , "Cuerpo" => $cuep, "Paginador" => 10, "Origen" => "json", "msj" => "SI");
  	}else{
  		$obj = array("msj" => "NO");
  	}
  	
  	return json_encode($obj);
  }
  
  function eliminarGaleria($arr){
  	if( $this -> db->query("DELETE FROM galeria WHERE oid=".$arr[0]) ){
  		$archivo = BASEPATH . 'img/galeria/'.$arr[1];
	    if (file_exists($archivo)) {
			if (unlink($archivo))
				$msj = "El archivo fue borrado";
			else
				$msj = "El archivo no fue borrado";
		} else
			$msj = "El archivo no existe";
  	}else{
  		$msj = "No se elimino";
  	}
  	return $msj;
  }
  
  function cab(){
  	$cabe = array();
  	$cabe[1] = array("titulo" => "", "oculto"=>1);
  	$cabe[2] = array("titulo" => "Imagen", "atributos" => "width:30%;", "buscar" => 0);
  	$cabe[3] = array("titulo" => "#", "tipo" => "bimagen", "funcion" => 'eliminarGaleria', "parametro" => "1,2", "ruta" => __IMG__ . "quitar.png", "atributos" => "text-align:center;");
  	$cabe[4] = array("titulo" => "Ver","atributos" => "width:40%");
  	return $cabe;
  }
  
  /*
   * Funcionas para zona
   */
  function registrarZona($arr=null){
  	$ban = $this -> db -> insert('zona',$arr);
  	if($ban){
  		return "был успешно зарегистрирован";
  	}
  	return "не была зарегистрирована";
  }
  
  function cabZona(){
  	$cabe = array();
  	$cabe[1] = array("titulo" => "", "oculto"=>1);
  	$cabe[2] = array("titulo" => "Nombre", "atributos" => "width:100px", "buscar" => 0);
  	$cabe[3] = array("titulo" => "Descripcion", "atributos" => "width:100px", "buscar" => 0);
  	
  	return $cabe;
  }
  
  function listaZonas(){
  	$zona = $this -> db -> query('SELECT * FROM zona ');
  	$obj = array();
  	$cant = $zona -> num_rows();
  	if($cant > 0){
  		$rsZon = $zona -> result();
  		$i = 0;
  		foreach($rsZon as $fila){
  			$i++;
  			$cuep[$i] = array("1" => $fila-> id,"2" => $fila -> nombre , "3" => $fila -> desc );
  		}
  		$obj = array("Cabezera" => $this -> cabZona() , "Cuerpo" => $cuep, "Paginador" => 10, "Origen" => "json", "msj" => 1);
  	}else{
  		$obj = array("msj" => 0);
  	}
  	 
  	return json_encode($obj);
  }
  
  function cmbZonas(){
  	$zona = $this -> db -> query('Select * from zona');
  	$rs = $zona -> result();
  	$lista = array();
  	
  	foreach ($rs as $fila){
  		$lista[$fila -> id] = $fila -> nombre;
  	}
  	//$lista[0]='SELECCIONE ZONA';
  	return json_encode($lista);
  }
  
  /**
   * Funciones para ciudad
   */
  function registrarCiudad($arr=null){
  	$ban = $this -> db -> insert('ciudad',$arr);
  	if($ban){
  		return "был успешно зарегистрирован";
  	}
  	return "не была зарегистрирована";
  }
  
  function cabCiudad(){
  	$cabe = array();
  	$cabe[1] = array("titulo" => "id","oculto"=>0);
  	$cabe[2] = array("titulo" => "Nombre", "atributos" => "width:100px", "buscar" => 0);
  	$cabe[3] = array("titulo" => "Descripcion", "atributos" => "width:100px", "buscar" => 0);
  	$cabe[4] = array("titulo" => "Zona", "atributos" => "width:100px", "buscar" => 0);
  	 
  	return $cabe;
  }
  
  function listaCiudad(){
  	$query = 'SELECT ciudad.id as cid,ciudad.desc as cdesc,zona.nombre as znombre,ciudad.nombre as cnombre 
  			FROM ciudad 
  			join zona on zona.id=ciudad.zona';
  	$zona = $this -> db -> query($query);
  	$obj = array();
  	$cant = $zona -> num_rows();
  	if($cant > 0){
  		$rsZon = $zona -> result();
  		$i = 0;
  		foreach($rsZon as $fila){
  			$i++;
  			$ciu='N/A';
  			if($fila -> cdesc != ''){
  				$ciu = $fila -> cdesc;
  			}
  			$cuep[$i] = array("1" => $fila-> cid,"2" => $fila -> cnombre , "3" => $ciu,"4"=> $fila -> znombre );
  		}
  		$obj = array("Cabezera" => $this -> cabCiudad() , "Cuerpo" => $cuep, "Paginador" => 10, "Origen" => "json", "msj" => 1);
  	}else{
  		$obj = array("msj" => 0);
  	}
  
  	return json_encode($obj);
  }
  
  function cmbCiudad($arr=null){
  	$ciudad = $this -> db -> query('Select * from ciudad where zona='.$arr['zona']);
  	$rs = $ciudad -> result();
  	$lista = array();
  	foreach ($rs as $fila){
  		$lista[$fila -> id] = $fila -> nombre;
  	}
  	return json_encode($lista);
  }
  
  /**
   * Funciones para Tipo de inmueble
   */
  function registrarTipo($arr=null){
  	$ban = $this -> db -> insert('tipo',$arr);
  	if($ban){
  		return "был успешно зарегистрирован";
  	}
  	return "не была зарегистрирована";
  }
  
  function cabTipo(){
  	$cabe = array();
  	$cabe[1] = array("titulo" => "", "oculto"=>1);
  	$cabe[2] = array("titulo" => "Nombre", "atributos" => "width:100%", "buscar" => 0);
  
  	return $cabe;
  }
  
  function listaTipo(){
  	$query = 'SELECT * FROM tipo';
  	$tipo = $this -> db -> query($query);
  	$obj = array();
  	$cant = $tipo -> num_rows();
  	if($cant > 0){
  		$rsTip = $tipo -> result();
  		$i = 0;
  		foreach($rsTip as $fila){
  			$i++;
  			$cuep[$i] = array("1" => $fila-> id,"2" => $fila -> nombre);
  		}
  		$obj = array("Cabezera" => $this -> cabTipo() , "Cuerpo" => $cuep, "Paginador" => 10, "Origen" => "json", "msj" => 1);
  	}else{
  		$obj = array("msj" => 0);
  	}
  
  	return json_encode($obj);
  }
  
  function cmbTipo(){
  	$zona = $this -> db -> query('Select * from tipo');
  	$rs = $zona -> result();
  	$lista = array();
  	 
  	foreach ($rs as $fila){
  		$lista[$fila -> id] = $fila -> nombre;
  	}
  	//$lista[0]='SELECCIONE ZONA';
  	return json_encode($lista);
  }
  
  /**
   * Funciones para Inmueble
   */
  function registrarInmueble($arr=null,$ref){
  	$cod = $this -> completar($ref,8);
  	$refe = 're-'.$cod;
  	$arr['refe'] = $refe;
  	$ban = $this -> db -> insert('inmueble',$arr);
  	
  	if($ban){
  		return $this -> db -> insert_id();
  	}
  	return "не была зарегистрирована";
  }
  
  function modificarInmueble($arr=null,$id){
	$this->db->where('id', $id);
  	$ban = $this -> db -> update('inmueble',$arr);
  	if($ban){
  		return "был успешно зарегистрирован";
  	}
  	return "не была зарегистрирована";
  }
  
  function eliminarInmueble($id){
  	$ban = $this -> db -> query('DELETE FROM inmueble where id='.$id);
  	if($ban){
  		$rs = $this -> db -> query("select * from galeria where oidi=".$id);
  		$rsG = $rs -> result();
  		foreach($rsG as $fila){
  			$arr[0]=$fila->oid;
  			$arr[1]=$fila->imagen;
  			$this -> eliminarGaleria($arr);
  		}
  		return "Se elimino con exito";
  	}
  	return "No se elimino";
  }
  
  function cabInmu(){
  	$cabe = array();
  	$cabe[1] = array("titulo" => "Id","oculto"=>1);
  	$cabe[2] = array("titulo" => "город","buscar" => 0);
  	$cabe[3] = array("titulo" => "тип","buscar" => 0);
  	$cabe[4] = array("titulo" => "размер","buscar" => 0,"tipo"=>'texto');
  	$cabe[5] = array("titulo" => "цена","buscar" => 0,"tipo"=>'texto');
  	$cabe[6] = array("titulo" => "подробности","buscar" => 0,'tipo' => 'textArea');
  	$cabe[7] = array("titulo" => "К.фраза","buscar" => 0,'tipo' => 'textArea');
  	$cabe[8] = array("titulo" => "статус",'tipo' => 'combo_fijo');
  	$cabe[9] = array("titulo" => "#", "tipo" => "bimagen", "funcion" => 'modificarInmueble', "parametro" => "1,4,5,6,7,8", "ruta" => __IMG__ . "botones/aceptar1.png", "atributos" => "text-align:center;","mantiene"=>1);
  	$cabe[10] = array("titulo" => "#", "tipo" => "bimagen", "funcion" => 'eliminarInmueble', "parametro" => "1", "ruta" => __IMG__ . "botones/quitar.png", "atributos" => "text-align:center;");
  	return $cabe;
  }
  
  function listaInmueble(){
  	$cmbEstatus = array("0"=>"Inactivo","1"=>"Activo");
  	$cmb = array("8"=>$cmbEstatus);
  	$query = 'SELECT inmueble.id as iid,refe,precio,tama,ubica,if(estatus=1,"Activo","Inactivo")as est,estatus,
				tipo.nombre as tnom,zona.nombre as znom,ciudad.nombre as cnom,detalle
				FROM inmueble
				join tipo on tipo.id = inmueble.tipo
				join zona on zona.id = inmueble.zona
				join ciudad on ciudad.id = inmueble.ciudad
				order by inmueble.id desc ;';
  	$tipo = $this -> db -> query($query);
  	$obj = array();
  	$cant = $tipo -> num_rows();
  	if($cant > 0){
  		$rsTip = $tipo -> result();
  		$i = 0;
  		foreach($rsTip as $fila){
  			$i++;
  			$cuep[$i] = array("1" => $fila-> iid,"2" => $fila-> cnom,"3" => $fila -> tnom,
  					"4" => $fila-> tama,"5" => $fila-> precio,"6" => $fila -> detalle,"7"=>$fila->ubica,"8"=>$fila->estatus,"9"=>'',"10"=>''
  					);
  		}
  		$obj = array("Cabezera" => $this -> cabInmu() , "Cuerpo" => $cuep, "Paginador" => 10, "Origen" => "json", "msj" => 1,"Objetos"=> $cmb);
  	}else{
  		$obj = array("msj" => 0);
  	}
  
  	return json_encode($obj);
  }
  
  function cmbInmueble(){
  	$zona = $this -> db -> query('Select * from inmueble where estatus=1');
  	$rs = $zona -> result();
  	$lista = array();
  
  	foreach ($rs as $fila){
  		$lista[$fila -> id] = $fila -> refe.' | '.$fila->ubica;
  	}
  	return json_encode($lista);
  }
  
  /**
   * Utilidades
   */
  function _setCodigoSRand($sCod) {
  	$sConsulta = "SELECT cod FROM t_srand WHERE cod='" . $sCod . "' LIMIT 1";
  	$rsC = $this -> db -> query($sConsulta);
  	if ($rsC -> num_rows() != 0) {
  		$aux = rand(1, 99999);
  		$C = $this -> _setCodigoSRand($aux);
  		return $C;
  	} else {
  		$this -> db -> query('INSERT INTO t_srand (oid, cod) VALUES (NULL, \'' . $sCod . '\');');
  		return $sCod;
  	}
  }
  
  public function Completar($strCadena = '', $intLongitud = '') {
  	$strContenido = '';
  	$strAux = '';
  	$intLen = strlen($strCadena);
  	if ($intLen != $intLongitud) {
  		$intCount = $intLongitud - $intLen;
  		for ($i = 0; $i < $intCount; $i++) {
  			$strAux .= '0';
  		}
  		$strContenido = $strAux . $strCadena;
  	}
  	return $strContenido;
  }
  
}
?>